package client_package;

import java.io.IOException;

import javax.swing.JOptionPane;

public class ThreadListener implements Runnable {
	private Controleur c;
	
	private VueConversation converse;
	
	public ThreadListener(Controleur c) {
		this.c = c;
		converse = null;
	}



	public void run() {
		try {
			//System.out.println("J'ouvre threadListener\n");
			this.converse = ((VueConversation)c.getVue());
			String ch = "";
			boolean quitter = false;
			while(!quitter) {
				ch = c.getIn().readLine();
				if(ch != null) {
					if(!ch.equals("%Client% : exit") && !ch.equals("%Client2% : exit")) {
						converse.alimente(ch);
					} else if(ch.equals("%Client2% : exit")){
						quitter = true;
						c.getOut().println("%Client2% : exit");
						c.getOut().flush();
						
						//System.out.println("le client sortant du ThreadListener est : " + c.getLogin());
						c.fermerVue(converse);
						JOptionPane.showMessageDialog(null, "Le correspondant est déconnecté");
						//System.out.println("le client est sorti");
					}
				} else {
					quitter = true;
					c.fermerVue(converse);
					JOptionPane.showMessageDialog(null, "Le correspondant est déconnecté");
				}
				Thread.sleep(500);
			}
		} catch (IOException e) {
			JOptionPane.showMessageDialog(null, "Il y a un problème dans la lecture des messages");
			c.fermerVue(converse);
		}  catch (InterruptedException e) {
			Thread.currentThread().interrupt();
		}
		//System.out.println("Je ferme le threadListener\n");
	}
}
